<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Organizacion_domicilio_exe( $this );
		
	class Organizacion_domicilio_exe extends Exe
	{
	function Organizacion_domicilio_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
	// MODIFICAR_DOMICILIO_DE_UNA_ORGANIZACION
	function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Organizacion_domicilio_frm' );
			extract( $oForm->getFieldArray() );
			// Agrega o Modifica el Domicilio
				$oDomicilio = $this->oModule->loadClass( 'Domicilio_exe' );
				$ncDomicilio = $oDomicilio->save();
				
				// Si viene por omision y hay otros => borra el flag de los otros, sino viene y tampoco hay => se pone el como por omision
				$ncDomicilioPorOmision = $this->oDatabase->getData(  "SELECT ncDomicilio FROM atOrganizacionDomicilio WHERE ncOrganizacion = $ncOrganizacion AND bPorOmision = 1");
				if ( $bPorOmision == 1  )
				{
					if ( $ncDomicilioPorOmision != $ncDomicilio )
						$this->oDatabase->update("atOrganizacionDomicilio", "bPorOmision", 0, "WHERE", "ncOrganizacion", $ncOrganizacion );
				} elseif ( !$ncDomicilioPorOmision )
					$bPorOmision = true;
					
				$this->oDatabase->update("atOrganizacionDomicilio", 
								"bPorOmision", $bPorOmision,
								"ncTipoDomicilio", $ncTipoDomicilio,
								"WHERE",
								"ncOrganizacion", $ncOrganizacion,
								"ncDomicilio", $ncDomicilio );
			$oForm->reset();
		}
	// AGREGAR__DOMICILIO_DE_UNA_ORGANIZACION
	function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Organizacion_domicilio_frm' );
			extract( $oForm->getFieldArray() );
			// Agrega o Modifica el Domicilio
				$oDomicilio = $this->oModule->loadClass( 'Domicilio_exe' );
				$ncDomicilio = $oDomicilio->save();
				
				// Si viene por omision y hay otros => borra el flag de los otros, sino viene y tampoco hay => se pone el como por omision
				$ncDomicilioPorOmision = $this->oDatabase->getData(  "SELECT ncDomicilio FROM atOrganizacionDomicilio WHERE ncOrganizacion = $ncOrganizacion AND bPorOmision = 1");
				if ( $bPorOmision == 1  )
				{
					if ( $ncDomicilioPorOmision != $ncDomicilio )
						$this->oDatabase->update("atOrganizacionDomicilio", "bPorOmision", 0, "WHERE", "ncOrganizacion", $ncOrganizacion );
				} elseif ( !$ncDomicilioPorOmision )
					$bPorOmision = true;


				$this->oDatabase->insert("atOrganizacionDomicilio", 
								"ncOrganizacion", $ncOrganizacion,
								"dDesde", date("Y-m-d"),
								"ncTipoDomicilio", $ncTipoDomicilio,
								"ncDomicilio", $ncDomicilio );
			$oForm->reset();
		}
	// ELIMINAR__DOMICILIO_DE_UNA_ORGANIZACION
	function delete()
		{
			$ncOrganizacion 	= getParam( 'ncOrganizacion' );
			$ncDomicilio 		= getParam( 'ncDomicilio' );
			if ( $ncOrganizacion && $ncDomicilio )
			{
				$this->oDatabase->delete( "atOrganizacionDomicilio", "ncOrganizacion", $ncOrganizacion , "ncDomicilio", $ncDomicilio );
				$oExe = $this->oModule->loadClass( 'Domicilio_exe' );
				$oExe->delete();
			}
			addMessage('Se elimino el domicilio de la organizacion');
		}
	}
?>